Real-time data visualization হল এমন একটি প্রক্রিয়া যেখানে ডেটা আপডেট হওয়ার সাথে সাথে তা চার্টে বা গ্রাফে প্রদর্শিত হয়। এটি অনেক ক্ষেত্রে ব্যবহৃত হয় যেখানে ডেটা দ্রুত পরিবর্তনশীল হয়, যেমন: স্টক মার্কেটের ডেটা, IoT ডিভাইসের ডেটা, সোসাল মিডিয়া ট্রেন্ড, ওয়েবসাইট ট্রাফিক ইত্যাদি। Google Charts API এবং Angular ব্যবহার করে রিয়েল-টাইম ডেটা ভিজুয়ালাইজেশন তৈরি করা যায়।
এখানে, আমরা দেখব কিভাবে Angular অ্যাপে Google Charts ব্যবহার করে real-time data ভিজুয়ালাইজেশন করা যায় এবং কিভাবে ডেটা আপডেট হলে তা অটোমেটিক্যালি চার্টে রিফ্রেশ হয়।
প্রথমে, একটি নতুন Angular প্রজেক্ট তৈরি করুন অথবা যদি আপনার একটি প্রজেক্ট থাকে, তাহলে সেটি ব্যবহার করতে পারেন:
ng new real-time-charts
cd real-time-charts
এখন angular-google-charts লাইব্রেরি ইন্সটল করুন:
npm install angular-google-charts
এটি ইনস্টল হওয়ার পর angular-google-charts প্যাকেজটি আপনার node_modules
ফোল্ডারে যুক্ত হয়ে যাবে।
এখন, app.module.ts
ফাইলে GoogleChartsModule ইমপোর্ট করুন।
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { GoogleChartsModule } from 'angular-google-charts'; // GoogleChartsModule ইমপোর্ট
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, GoogleChartsModule],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
এখন, আমরা Google Charts ব্যবহার করে একটি Line Chart তৈরি করব, যা প্রতি সেকেন্ডে রিয়েল-টাইম ডেটা আপডেট হবে। আমরা একটি setInterval ব্যবহার করব, যাতে প্রতি 1 সেকেন্ড পরপর ডেটা আপডেট হয় এবং চার্টে তা রিফ্রেশ হয়।
app.component.ts
ফাইল:import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'Real-Time Data Visualization';
chartType = 'LineChart'; // Chart Type: LineChart
chartData = [
['Time', 'Value'], // Initial empty data
];
chartOptions = {
title: 'Real-Time Data Update',
hAxis: { title: 'Time' },
vAxis: { title: 'Value' },
legend: { position: 'top' },
width: '100%',
height: 400
};
// Initializing data point counter
dataPoint = 0;
ngOnInit() {
// Update chart data every 1 second (1000 milliseconds)
setInterval(() => {
this.updateChartData();
}, 1000); // 1000ms = 1 second
}
// Function to simulate real-time data update
updateChartData() {
// Generate random value (simulating real-time data)
const value = Math.floor(Math.random() * 100);
// Add new data point to chart
this.chartData.push([this.dataPoint++, value]);
// Redraw the chart with new data
this.redrawChart();
}
// Function to trigger chart redraw
redrawChart() {
// Angular will automatically detect the change and redraw the chart when the data changes
}
}
app.component.html
ফাইল:<h1>{{ title }}</h1>
<!-- Google Line Chart with Real-Time Data -->
<google-chart
[type]="chartType"
[data]="chartData"
[options]="chartOptions">
</google-chart>
'LineChart'
ব্যবহার করা হয়েছে, কারণ আমরা Line Chart তৈরি করতে চাই।এখন, আমাদের ডেটা সিমুলেট করার জন্য আমরা Math.random() ব্যবহার করছি, তবে প্রকৃত অ্যাপ্লিকেশনে আপনি WebSocket, REST API, অথবা Firebase এর মতো রিয়েল-টাইম ডেটা সোর্স থেকে ডেটা নিয়ে আসতে পারেন।
import { WebSocketSubject } from 'rxjs/webSocket';
export class AppComponent implements OnInit {
private socket$ = new WebSocketSubject('wss://your-websocket-url');
ngOnInit() {
this.socket$.subscribe((data) => {
// Assume data is the real-time value you want to display
this.updateChartData(data);
});
}
updateChartData(data) {
this.chartData.push([this.dataPoint++, data]);
this.redrawChart();
}
redrawChart() {
// Chart redraw logic
}
}
এখানে, WebSocket ব্যবহার করে আমরা রিয়েল-টাইম ডেটা গ্রহণ করছি এবং তা chartData তে আপডেট করছি।
এখন, অ্যাপ্লিকেশনটি চালাতে:
ng serve
এটি ডিফল্টভাবে অ্যাপ্লিকেশনটি http://localhost:4200
এ রান করবে। আপনার ব্রাউজারে গিয়ে আপনি একটি Line Chart দেখতে পারবেন, যা প্রতি সেকেন্ডে Value আপডেট হয়ে রিফ্রেশ হবে।
Real-Time Data Visualization হল এমন একটি প্রক্রিয়া যেখানে ডেটা প্রতিনিয়ত আপডেট হয় এবং সেই অনুযায়ী তা চার্টে বা গ্রাফে প্রদর্শিত হয়। Angular এবং Google Charts API ব্যবহার করে আপনি সহজেই real-time data ভিজুয়ালাইজেশন তৈরি করতে পারেন। setInterval() ফাংশন ব্যবহার করে আপনি প্রতি সেকেন্ডে ডেটা আপডেট করতে পারেন, এবং WebSocket বা REST API থেকে রিয়েল-টাইম ডেটা গ্রহণ করতে পারেন। Angular স্বয়ংক্রিয়ভাবে change detection এর মাধ্যমে ডেটা পরিবর্তন হলে তা চার্টে রিফ্রেশ করবে।
WebSocket হল একটি প্রোটোকল যা ক্লায়েন্ট এবং সার্ভারের মধ্যে রিয়েল-টাইম, ডুয়াল-ওয়ে কমিউনিকেশন স্থাপন করতে ব্যবহৃত হয়। এটি বিশেষ করে রিয়েল-টাইম ডেটা ইন্টিগ্রেশন এবং অ্যাপ্লিকেশন তৈরি করার জন্য উপকারী যেখানে ডেটা দ্রুত পরিবর্তিত হয়, যেমন: স্টক মার্কেট, ইভেন্ট ট্র্যাকিং, সোশ্যাল মিডিয়া আপডেটস, অথবা গেম ডেটা।
Angular অ্যাপ্লিকেশন এবং Google Charts API ব্যবহার করে WebSocket এর মাধ্যমে রিয়েল-টাইম ডেটা data binding কিভাবে করা যায় তা এখানে দেখানো হবে। আমরা একটি Line Chart তৈরি করব, যা WebSocket থেকে আসা রিয়েল-টাইম ডেটা দ্বারা আপডেট হবে।
প্রথমে একটি নতুন Angular প্রজেক্ট তৈরি করুন (যদি আপনার আগে থেকেই কোনো প্রজেক্ট থাকে, তবে সেটি ব্যবহার করতে পারেন):
ng new websocket-real-time
cd websocket-real-time
Google Charts লাইব্রেরি ব্যবহার করতে angular-google-charts প্যাকেজটি ইন্সটল করতে হবে। এটি ইনস্টল করার জন্য নিচের কমান্ডটি ব্যবহার করুন:
npm install angular-google-charts
এটি ইনস্টল হওয়ার পর angular-google-charts প্যাকেজটি আপনার node_modules
ফোল্ডারে যুক্ত হয়ে যাবে।
Angular অ্যাপে WebSocket ইন্টিগ্রেট করতে, আমরা rxjs/webSocket লাইব্রেরি ব্যবহার করব। এটি ইন্সটল করতে:
npm install rxjs
এখন, app.module.ts
ফাইলে GoogleChartsModule এবং WebSocket ইমপোর্ট করুন।
app.module.ts
ফাইল:import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { GoogleChartsModule } from 'angular-google-charts';
import { WebSocketSubject } from 'rxjs/webSocket'; // WebSocket ইমপোর্ট
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, GoogleChartsModule],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
এখন আমরা WebSocket ব্যবহার করে রিয়েল-টাইম ডেটা ফেচ করব এবং সেটি Google Chart-এ আপডেট করব।
app.component.ts
ফাইল:import { Component, OnInit } from '@angular/core';
import { WebSocketSubject } from 'rxjs/webSocket'; // WebSocketSubject ইমপোর্ট করা
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'Real-Time Data via WebSocket';
chartType = 'LineChart'; // Chart Type: LineChart
chartData = [
['Time', 'Value'] // Initial data for the chart (empty data)
];
chartOptions = {
title: 'Real-Time Data Update',
hAxis: { title: 'Time' },
vAxis: { title: 'Value' },
legend: { position: 'top' },
width: '100%',
height: 400
};
// WebSocket URL (replace with your WebSocket server URL)
private socket$ = new WebSocketSubject('wss://your-websocket-url');
// Initializing data point counter
dataPoint = 0;
ngOnInit() {
// Subscribing to WebSocket to receive real-time data
this.socket$.subscribe((data: number) => {
this.updateChartData(data); // On new data, update chart
});
}
// Function to update chart data with real-time data
updateChartData(data: number) {
this.chartData.push([this.dataPoint++, data]); // Add new data point
this.redrawChart(); // Trigger chart redraw
}
// Function to trigger chart redraw
redrawChart() {
// Angular will automatically detect the change and redraw the chart
}
}
এখন, আমরা app.component.html
ফাইলে Google Chart রেন্ডার করব, যাতে রিয়েল-টাইম ডেটা প্রতি সেকেন্ডে আপডেট হয়ে প্রদর্শিত হয়।
app.component.html
ফাইল:<h1>{{ title }}</h1>
<!-- Google Line Chart with Real-Time Data -->
<google-chart
[type]="chartType"
[data]="chartData"
[options]="chartOptions">
</google-chart>
এখানে, google-chart
কম্পোনেন্টে chartData এবং chartOptions দিয়েছি, যেখানে chartData আসলে WebSocket থেকে আসা রিয়েল-টাইম ডেটা দ্বারা আপডেট হবে।
এখন, অ্যাপ্লিকেশনটি চালাতে:
ng serve
এটি ডিফল্টভাবে অ্যাপ্লিকেশনটি http://localhost:4200
এ রান করবে। আপনার ব্রাউজারে গিয়ে আপনি একটি Line Chart দেখতে পাবেন, যা WebSocket থেকে আসা ডেটা দ্বারা রিয়েল-টাইমে আপডেট হবে।
ধরা যাক, আপনি যদি WebSocket থেকে একটি ডেটা স্ট্রিম ব্যবহার করছেন, তবে এটি Line Chart এর ডেটাকে প্রতি সেকেন্ডে বা নির্দিষ্ট সময়ে আপডেট করবে। এটি একটি শক্তিশালী এবং ইন্টারঅ্যাকটিভ রিয়েল-টাইম ডেটা ভিজুয়ালাইজেশন প্রদান করবে। উদাহরণস্বরূপ, আপনি stock price, sensor data, অথবা live event data স্ট্রিম করতে পারেন।
WebSocket URL এবং ডেটা স্ট্রিমের পদ্ধতি আপনার সার্ভারের উপর নির্ভর করবে। এখানে আমরা একটি সাধারণ WebSocketSubject ব্যবহার করেছি, যা WebSocket সার্ভারের সাথে সংযোগ স্থাপন করে এবং ডেটা রিসিভ করে।
WebSocket এর মাধ্যমে Real-Time Data Binding একটি শক্তিশালী পদ্ধতি যা ক্লায়েন্ট এবং সার্ভারের মধ্যে ডুয়াল-ওয়ে রিয়েল-টাইম কমিউনিকেশন সক্ষম করে। Angular এবং Google Charts ব্যবহার করে, আপনি WebSocket থেকে আসা ডেটা সরাসরি Line Chart বা অন্যান্য চার্টে প্রদর্শন করতে পারেন। WebSocketSubject ব্যবহার করে Angular অ্যাপে রিয়েল-টাইম ডেটা ফেচ করা যায় এবং সেটি Google Chart এর মাধ্যমে ভিজুয়ালাইজ করা যায়।
Google Charts API এবং Angular ব্যবহার করে আপনি রিয়েল-টাইম ডেটা ফেচ করতে পারেন এবং সেই ডেটাকে চার্টে প্রদর্শন করতে পারেন। সাধারণত, এই ধরনের ডেটা RESTful API থেকে আসতে পারে, এবং আপনি HTTP Requests এর মাধ্যমে তা Angular অ্যাপে গ্রহণ করবেন। ডেটা আসার পর তা Google Charts-এ প্রদর্শন করা যাবে।
এখানে, আমি Angular এবং Google Charts ব্যবহার করে REST API থেকে ডেটা ফেচ করে Pie Chart এবং Line Chart-এ প্রদর্শনের একটি উদাহরণ দেব।
প্রথমে একটি Angular প্রজেক্ট তৈরি করুন (যদি ইতিমধ্যে তৈরি থাকে, তবে সেটি ব্যবহার করতে পারেন):
ng new realtime-chart
cd realtime-chart
HTTPClientModule ব্যবহার করার জন্য, প্রথমে এটি app.module.ts ফাইলে ইমপোর্ট করতে হবে:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http'; // Import HTTP client module
import { AppComponent } from './app.component';
import { GoogleChartsModule } from 'angular-google-charts'; // GoogleChartsModule ইমপোর্ট
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
GoogleChartsModule,
HttpClientModule // HTTPClientModule ইমপোর্ট
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
এখন আমরা একটি RESTful API ব্যবহার করে ডেটা ফেচ করব। এখানে, আমরা একটি সাধারণ API ব্যবহার করব যা র্যান্ডম ডেটা প্রদান করবে।
আমরা API ফেচ করার জন্য এখানে Random User API ব্যবহার করতে পারি, বা আপনি আপনার নিজস্ব API ব্যবহার করতে পারেন।
app.component.ts
ফাইল:import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'Real-Time Data Fetching for Google Charts';
// Chart Types
chartType = 'PieChart';
lineChartType = 'LineChart';
// Initial data for Pie Chart and Line Chart
chartData = [['Task', 'Hours per Day'], ['Work', 8], ['Eat', 2], ['Commute', 2], ['Watch TV', 2], ['Sleep', 8]];
lineChartData = [
['Year', 'Sales', 'Expenses'],
['2010', 1000, 400],
['2011', 1170, 460],
['2012', 660, 1120],
['2013', 1030, 540]
];
chartOptions = {
title: 'My Daily Activities',
pieHole: 0.4,
width: '100%',
height: 400
};
lineChartOptions = {
title: 'Company Performance',
hAxis: { title: 'Year' },
vAxis: { title: 'Amount' },
};
// Inject HttpClient
constructor(private http: HttpClient) {}
ngOnInit() {
// Fetch real-time data from API when the component is initialized
this.fetchDataFromAPI();
}
// Function to fetch real-time data from API
fetchDataFromAPI() {
this.http.get<any>('https://api.example.com/data') // Replace with your actual API endpoint
.subscribe((response) => {
// Assuming API response contains 'chartData' and 'lineChartData'
this.chartData = response.chartData; // Update Pie Chart data
this.lineChartData = response.lineChartData; // Update Line Chart data
}, (error) => {
console.error('Error fetching data:', error);
});
}
}
এখন, HTML ফাইলে চার্ট রেন্ডার করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে একটি Pie Chart এবং একটি Line Chart প্রদর্শিত হবে।
app.component.html
ফাইল:<h1>{{ title }}</h1>
<!-- Pie Chart -->
<div class="chart-container">
<h2>Pie Chart</h2>
<google-chart
[type]="chartType"
[data]="chartData"
[options]="chartOptions">
</google-chart>
</div>
<!-- Line Chart -->
<div class="chart-container">
<h2>Line Chart</h2>
<google-chart
[type]="lineChartType"
[data]="lineChartData"
[options]="lineChartOptions">
</google-chart>
</div>
আপনার চার্টগুলিকে সুন্দরভাবে প্রদর্শন করার জন্য কিছু CSS স্টাইল ব্যবহার করুন।
app.component.css
ফাইল:.chart-container {
margin-bottom: 30px;
text-align: center;
}
google-chart {
display: block;
margin: 0 auto;
max-width: 100%; /* Ensure charts are responsive */
}
উপরে fetchDataFromAPI
ফাংশনে দেখানো হয়েছে কিভাবে HTTP GET Request ব্যবহার করে API থেকে ডেটা ফেচ করা হয়। ডেটা পাওয়ার পর chartData এবং lineChartData আপডেট করা হয়েছে, যা স্বয়ংক্রিয়ভাবে চার্টে প্রতিফলিত হবে।
এই উদাহরণে, আমরা দেখলাম কিভাবে Angular এবং Google Charts API ব্যবহার করে real-time data API থেকে ফেচ করা হয় এবং সেই ডেটা Pie Chart এবং Line Chart-এ প্রদর্শিত হয়। Angular-এর HttpClient মডিউল ব্যবহার করে API থেকে ডেটা গ্রহণ এবং Google Charts API-তে সেটি ব্যবহার করা সহজ। এই পদ্ধতিটি আপনার অ্যাপ্লিকেশনকে আরও ডাইনামিক এবং ইন্টারঅ্যাকটিভ বানায়, যেখানে ডেটা সঠিকভাবে এবং রিয়েল-টাইমে প্রদর্শিত হয়।
Angular Service Worker হল একটি শক্তিশালী টুল যা Progressive Web App (PWA) তৈরি করতে ব্যবহৃত হয়। এটি মূলত অ্যাপ্লিকেশনকে অফলাইনে কাজ করতে সাহায্য করে, ব্যাকগ্রাউন্ডে ডেটা লোড করে, এবং অন্যান্য নেটওয়ার্ক রিকোয়েস্ট পরিচালনা করে। Service Worker ব্যবহার করে আপনি ব্যাকগ্রাউন্ডে ডেটা ফেচিং করতে পারেন, যা অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে সহায়তা করে।
এখানে আমরা Angular Service Worker ব্যবহার করে Background Data Fetching কিভাবে করতে হয় তা দেখব। এই প্রক্রিয়ায়, আমরা Service Worker কে ব্যাকগ্রাউন্ড ডেটা ফেচিং এর জন্য কনফিগার করব এবং সেগুলি অ্যাপ্লিকেশনে ব্যবহার করব।
প্রথমে একটি নতুন Angular প্রজেক্ট তৈরি করুন (যদি ইতিমধ্যে থাকে, তবে সেটি ব্যবহার করতে পারেন):
ng new service-worker-demo
cd service-worker-demo
Angular অ্যাপে Service Worker ব্যবহার করতে হলে, আপনাকে @angular/pwa প্যাকেজটি ইন্সটল করতে হবে। এটি Angular অ্যাপে Progressive Web App (PWA) ফিচার যোগ করতে সাহায্য করে।
ng add @angular/pwa
এই কমান্ডটি Angular অ্যাপে Service Worker কনফিগার করে দিবে, যা আপনার অ্যাপ্লিকেশনকে অফলাইনে কাজ করতে সক্ষম করবে এবং ব্যাকগ্রাউন্ড ডেটা ফেচিং এর জন্য প্রস্তুত করবে।
এখন angular.json ফাইলের মধ্যে serviceWorker অপশনটি true করতে হবে।
"projects": {
"service-worker-demo": {
"architect": {
"build": {
"configurations": {
"production": {
"serviceWorker": true, // Enable service worker
"ngswConfigPath": "ngsw-config.json"
}
}
}
}
}
}
এখানে, serviceWorker: true এবং ngswConfigPath এর মাধ্যমে Service Worker কনফিগারেশন পাথ দেওয়া হয়েছে।
Angular Service Worker কনফিগারেশনের জন্য একটি ngsw-config.json
ফাইল ব্যবহার করা হয়। এটি Service Worker এর পদ্ধতিগুলো, ক্যাশিং কৌশল, এবং ব্যাকগ্রাউন্ড ডেটা ফেচিং কনফিগার করতে সাহায্য করে।
ngsw-config.json
ফাইলটি অ্যাপের মূল ফোল্ডারে থাকা উচিত। এই ফাইলে dataGroups কনফিগার করে আপনি ব্যাকগ্রাউন্ড ডেটা ফেচিং নিয়ন্ত্রণ করতে পারেন।
{
"version": 1,
"dataGroups": [
{
"name": "api-data", // API data group
"urls": [
"https://api.example.com/data" // Your API endpoint to fetch data
],
"cacheConfig": {
"maxSize": 10,
"maxAge": "1d", // Cache for 1 day
"strategy": "performance" // Fetch data in the background for better performance
}
}
]
}
এখানে, dataGroups এর মধ্যে urls এর তালিকায় আপনি যেসব API endpoint থেকে ডেটা ফেচ করতে চান সেগুলির URL নির্ধারণ করবেন। এছাড়া cacheConfig এর মাধ্যমে ডেটা ক্যাশিং কিভাবে হবে, সেগুলি নির্ধারণ করা হয়।
এখন আপনি Angular Service Worker এর মাধ্যমে API থেকে ডেটা ফেচ করতে পারেন এবং ব্যাকগ্রাউন্ডে সেই ডেটা ফেচ হতে থাকবে। এর জন্য HttpClient ব্যবহার করা হয়।
app.component.ts
ফাইল:import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'Angular Service Worker Example';
data: any;
constructor(private http: HttpClient) {}
ngOnInit(): void {
// Fetch initial data
this.fetchData();
}
fetchData(): void {
this.http.get('https://api.example.com/data').subscribe(response => {
this.data = response;
console.log('Fetched data: ', this.data);
});
}
}
এখানে, HttpClient এর মাধ্যমে আপনি API থেকে ডেটা ফেচ করছেন। API ডেটা ফেচ করার পর সেটি this.data তে সংরক্ষণ করা হচ্ছে এবং কনসোল লোগে আছাড়া হচ্ছে।
Angular Service Worker API ব্যবহার করে background fetch করতে হলে, আপনি service worker কে ব্যাকগ্রাউন্ডে ডেটা ফেচ করার জন্য কনফিগার করেছেন। Service Worker স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ডে ফেচিং শুরু করবে এবং ডেটা ক্যাশে করবে।
অবশেষে, Angular অ্যাপটি চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:
ng serve --prod
এটি প্রোডাকশন মোডে অ্যাপ্লিকেশন চালাবে, যেখানে Service Worker সক্রিয় থাকবে এবং ব্যাকগ্রাউন্ড ডেটা ফেচিং কার্যকর হবে।
Angular Service Worker ব্যবহার করে আপনি background data fetching পরিচালনা করতে পারেন। Service Worker অ্যাপ্লিকেশনে ব্যাকগ্রাউন্ড ডেটা ফেচিং এবং ক্যাশিং সক্ষম করে, যা অফলাইনে কাজ করার ক্ষমতা এবং অ্যাপের পারফরম্যান্স উন্নত করতে সহায়তা করে। Service Worker কনফিগার করে আপনি অ্যাপের ডেটাকে ব্যাকগ্রাউন্ডে সিঙ্ক্রোনাইজ এবং ক্যাশ করতে পারেন, যা ইউজার এক্সপেরিয়েন্সকে আরও দ্রুত এবং ইন্টারঅ্যাকটিভ করে তোলে।
Real-Time Data চার্টে পরিবর্তন হওয়ার সাথে সাথে Google Charts এ আপডেট দেখানো একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, বিশেষত ডেটা ড্যাশবোর্ড, ট্র্যাকিং সিস্টেম, এবং স্টক মার্কেট অ্যাপ্লিকেশনগুলির জন্য। আপনি Angular এর মাধ্যমে Google Charts ব্যবহার করে real-time ডেটা আপডেট এবং চার্ট রেন্ডার করতে পারেন। এটি ডেটার পরিবর্তন হওয়ার সাথে সাথে তা real-time চার্টে প্রদর্শন করবে।
এখানে আমরা একটি Real-Time Data পরিবর্তনের সাথে সাথে Google Charts আপডেট করার প্রক্রিয়া দেখাবো।
প্রথমে একটি Angular প্রজেক্ট তৈরি করুন (যদি ইতিমধ্যে থাকে, তবে সেটি ব্যবহার করতে পারেন):
ng new real-time-chart
cd real-time-chart
Google Charts API ব্যবহারের জন্য angular-google-charts লাইব্রেরি ইন্সটল করতে হবে:
npm install angular-google-charts
এখন, GoogleChartsModule ইমপোর্ট করতে হবে আপনার অ্যাপ্লিকেশনে। এর জন্য app.module.ts
ফাইলে কোডটি যোগ করুন:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { GoogleChartsModule } from 'angular-google-charts'; // GoogleChartsModule ইমপোর্ট
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
GoogleChartsModule // GoogleChartsModule যোগ করা হয়েছে
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
এখন, app.component.ts ফাইলে ডেটা আপডেট করার জন্য একটি ফাংশন তৈরি করতে হবে, যাতে প্রতি কয়েক সেকেন্ড পর পর ডেটা আপডেট হয় এবং তা চার্টে রিফ্লেক্ট হয়।
app.component.ts
ফাইল:import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'Real-Time Data Chart';
chartType = 'LineChart'; // Line Chart Type
chartData = [
['Time', 'Value'],
['0', 0]
]; // Initial Data
chartOptions = {
title: 'Real-Time Data',
curveType: 'function',
width: '100%',
height: 400
};
ngOnInit() {
setInterval(() => {
this.updateChartData(); // Update data every 2 seconds
}, 2000);
}
// Function to update chart data in real-time
updateChartData() {
const time = this.chartData.length;
const newValue = Math.floor(Math.random() * 100); // Random value for demonstration
// Add new data point to chartData
this.chartData.push([time.toString(), newValue]);
// Remove the first data point to maintain only the last 10 values
if (this.chartData.length > 10) {
this.chartData.shift();
}
}
}
এখন, app.component.html ফাইলে চার্ট রেন্ডার করতে হবে।
app.component.html
ফাইল:<h1>{{ title }}</h1>
<!-- Google Chart কম্পোনেন্ট -->
<google-chart
[type]="chartType"
[data]="chartData"
[options]="chartOptions">
</google-chart>
এখানে, google-chart কম্পোনেন্টের মাধ্যমে আমাদের Line Chart রেন্ডার হচ্ছে। এই চার্টে ডেটা প্রতি 2 সেকেন্ডে আপডেট হবে।
এখন, চার্টের কন্টেইনারের জন্য কিছু স্টাইলিং CSS যোগ করা হবে যাতে এটি সুন্দরভাবে দেখায়।
app.component.css
ফাইল:h1 {
text-align: center;
font-family: Arial, sans-serif;
}
google-chart {
display: block;
margin: 20px auto;
}
এখানে, google-chart কম্পোনেন্টের জন্য কিছু সেন্টারিং এবং মার্জিন অ্যাড করা হয়েছে যাতে চার্টটি সুন্দরভাবে প্রদর্শিত হয়।
এখন, অ্যাপ্লিকেশনটি চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:
ng serve
এটি http://localhost:4200 এ রান করবে। আপনি দেখতে পাবেন যে প্রতি 2 সেকেন্ডে লাইন চার্টে নতুন ডেটা যোগ হচ্ছে এবং পুরনো ডেটা অপসারণ হচ্ছে। এটি একটি real-time data আপডেট করা চার্ট।
এভাবে, আপনি Angular এবং Google Charts ব্যবহার করে real-time data পরিবর্তনের সাথে সাথে চার্ট আপডেট করতে পারেন। এখানে আমরা setInterval() ব্যবহার করে প্রতি কয়েক সেকেন্ডে নতুন ডেটা আপডেট করছি এবং সেটি LineChart-এ প্রদর্শন করছি। এই কৌশলটি ডেটা ভিজুয়ালাইজেশন, স্টক মার্কেট অ্যাপ্লিকেশন, ওয়েব এনালিটিক্স ইত্যাদি ক্ষেত্রে খুবই কার্যকরী।
Read more